Информация от устройств получается двумя способами.
Опрос (polling) Уведомляющие сообщения (event notification)
Технология опроса известна еще со времен MS DOS когда с какой то периодичностью программа обращалась к устройствам ввода для получения информации. Данный подход не лишен недостатков, первый недостаток – это то, что скорость реакции напрямую зависит от частоты обращения к устройству. Кроме того есть шанс потерять информацию если частота недостаточно маленькая. Если же опрос производиться часто, то нагрузка на операционную систему довольно большая даже если пользователь нечего не вводил.
Второй способ ликвидирует все вышеуказанные недостатки. Как только что то произойдет с устройством ввода, тут же будет сгенерировано уведомительное сообщение. Но тут опять есть тонкости. Придется пользоваться функциями для блокировки потоков, это усложняет процесс разработки.